From 40e0c56e7213d6d5cb78bfd9d6adfffb1fb81fad Mon Sep 17 00:00:00 2001 From: tsteven4 <13596209+tsteven4@users.noreply.github.com> Date: Mon, 22 Mar 2021 11:53:18 -0600 Subject: [PATCH] fix another pvs warning V758 The 'pos' reference becomes invalid when temporary object returned by a function is destroyed. --- garmin_gpi.cc | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/garmin_gpi.cc b/garmin_gpi.cc index e9fabb876..b6edec728 100644 --- a/garmin_gpi.cc +++ b/garmin_gpi.cc @@ -912,23 +912,20 @@ wdata_compute_size(writer_data_t* data) wpt->extra_data = dt; if (alerts) { - int pidx; - if ((pidx = wpt->shortname.indexOf('@')) != -1) { - const char* pos = CSTR(wpt->shortname.mid(pidx)); - double speed, scale; + if (int pidx = wpt->shortname.indexOf('@'); pidx != -1) { + double scale; if (units == 's') { scale = MPH_TO_MPS(1); } else { scale = KPH_TO_MPS(1); } - parse_speed(pos + 1, &speed, scale, MYNAME); + double speed = 0; + parse_speed(wpt->shortname.mid(pidx + 1), &speed, scale, MYNAME); if (speed > 0) { WAYPT_SET(wpt, speed, speed); } #if 0 - if (pos > wpt->shortname) { - wpt->shortname[pos - wpt->shortname] = '\0'; - } + wpt->shortname.truncate(pidx); #endif } else if ((opt_speed) && (! WAYPT_HAS(wpt, speed))) { WAYPT_SET(wpt, speed, defspeed); -- 2.30.2